package cn.lg.soar.system.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Lazy;

/**
 * 服务的配置
 * @author luguoxiang
 * @date 2022/5/29
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Lazy
@Getter
@Setter
@ConfigurationProperties(value = "lg.sso.client")
public class SsoClientProps {

    /**
     * 开启单点登录客户端功能
     */
    private Boolean enabled;

    /**
     * 接收用户下线通知的地址
     */
    private String logoutNotifyUrl;

    /**
     * 主页路径
     */
    private String homeUrl;

    /**
     * 配置客户端应用属性
     */
    private App[] apps;

    @Getter
    @Setter
    public static class App {

        /**
         * 服务端标识(可接入多个服务端，用于区分服务端，随意填写，不重复即可)，非必填
         */
        private String serverId;

        /**
         * 服务端基础地址
         */
        private String serverHost;

        /**
         * 服务端分配的id
         */
        private Long clientId;

        /**
         * 服务端分配的密钥
         */
        private String secret;

        public void setServerHost(String serverHost) {
            if (serverHost.lastIndexOf("/") != serverHost.length() - 1) {
                serverHost += "/";
            }
            this.serverHost = serverHost;
        }
    }
}
